Date: 05-20-97 22:57 From: Hans Lunsing Subj: Windows & QBasic Hello Robin On Sunday, 18 May 1997 12:24:28, you wrote to all: RK> Complex question: Does anyone out there know if there is any RK> way to get access to any Windows processes directly from a dos RK> program? Lots come to mind, but the first one I can think of is the RK> clipboard? RK> It would be nice to use the clipboard in one step instead of RK> losing your full screen everytime you copy or paste. Lots more RK> comes to mind to a dedicated mouse hater. The clipboard can be accessed through function &h17 of de multiplex interrupt (&h2F). Here are its subfunctions (taken from Ralf Brown's interrupt list): INT 2F 1700 - MS Windows "WINOLDAP" - IDENTIFY WinOldAp VERSION Inp.: AX = 1700h Return: AX = 1700h if this version of WINOLDAP doesn't support clipboard AX <> 1700h AL = WINOLDAP major version AH = WINOLDAP minor version Program: WinOldAp (WINOLDAP.MOD) is a Microsoft Windows extension supporting "old" (character-mode) application access to Dynamic Data Exchange, menus, and the Windows clipboard. Note: this installation check DOES NOT follow the format used by other software of returning AL=FFh INT 2F 1701 - MS Windows "WINOLDAP" - OPEN CLIPBOARD Inp.: AX = 1701h Return: AX = status nonzero success 0000h clipboard is already open SeeAlso: AX=1700h,AX=1702h,AX=1703h,AX=1704h,INT 16/AX=CB00h INT 2F 1702 - MS Windows "WINOLDAP" - EMPTY CLIPBOARD Inp.: AX = 1702h Return: AX = status nonzero clipboard has been emptied 0000h failure INT 2F 1703 - MS Windows "WINOLDAP" - SET CLIPBOARD DATA Inp.: AX = 1703h DX = clipboard format supported by WinOldAp (see #2005) ES:BX -> data (see #2006,#2007) SI:CX = size of data Return: AX = status nonzero data copied into the Clipboard 0000h failure INT 2F 1704 - MS Windows "WINOLDAP" - GET CLIPBOARD DATA SIZE Inp.: AX = 1704h DX = clipboard format supported by WinOldAp (see #2005) Return: DX:AX = size of data in bytes, including any headers 0000h:0000h if no data in this format in the Clipboard Note: Windows reportedly rounds up the size of the data to a multiple of 32 bytes INT 2F 1705 - MS Windows "WINOLDAP" - GET CLIPBOARD DATA Inp.: AX = 1705h DX = clipboard format supported by WinOldAp (see #2005) ES:BX -> buffer Return: AX = status nonzero success 0000h error, or no data in this format in Clipboard INT 2F 1708 - MS Windows "WINOLDAP" - CloseClipboard Inp.: AX = 1708h Return: AX = status 0000h failure nonzero success INT 2F 1709 - MS Windows "WINOLDAP" - COMPACT CLIPBOARD Inp.: AX = 1709h SI:CX = desired size in bytes Return: DX:AX = number of bytes in largest block of free memory Note: WinOldAp is responsible for including the size of any headers INT 2F 170A - MS Windows "WINOLDAP" - GET DEVICE CAPABILITIES Inp.: AX = 170Ah DX = GDI information index (see #2008) Return: AX = integer value of the desired item (see #2009,#2010,#2011,#2012,#2013,#2014,#2015) Note: This function returns the device-capability bits for the given display DOS applications can cooperate with Windows through function &h16 of de multiplex interrupt. See Ralf Brown's interrupt list for details. Friendly greeting you, Hans Lunsing, Fido : 2:281/607.214 Internet : jlunsing@doge.nl